<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  <meta content="" name="keywords">

  <title> 正则表达式操作实践 - </title>
  <meta name="description" content="" />
  <meta property="og:title" content="正则表达式操作实践" />
  <meta name="twitter:title" content="正则表达式操作实践" />
  <meta name="description" content="收录了一些来自Python123官网的正则实践操作题目，转录学习">
  <meta property="og:description" content="收录了一些来自Python123官网的正则实践操作题目，转录学习">
  <meta name="twitter:description" content="收录了一些来自Python123官网的正则实践操作题目，转录学习">
  <meta name="author" content="{Description { .Site.Author.name }}"/>
  <meta name="twitter:card" content="summary" />
  <meta property="og:url" content="https://systemime.github.io/blog/2019-02/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E5%AE%9E%E8%B7%B5/" />
  <meta property="og:type" content="website" />
  <meta property="og:site_name" content="听风的小站" />

  <meta name="generator" content="Hugo 0.67.0" />
  <link rel="canonical" href="https://systemime.github.io/blog/2019-02/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E5%AE%9E%E8%B7%B5/" />
  <link rel="alternate" href="https://systemime.github.io/index.xml" type="application/rss+xml" title="听风的小站">
  <script src="https://res.cloudinary.com/jimmysong/raw/upload/rootsongjc-hugo/jquery-1.12.4.min.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css" integrity="sha384-wITovz90syo1dJWVh32uuETPVEtGigN07tkttEqPv+uR2SE/mbQcG7ATL28aI9H0" crossorigin="anonymous">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  
  
  <link rel="stylesheet" href="https://systemime.github.io/css/main.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/my.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/pace.css" />
  <link rel="stylesheet" href="https://cdn.plyr.io/3.4.7/plyr.css">
  <link rel="stylesheet" href="https://systemime.github.io/css/lightgallery.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/baguetteBox.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/search.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/reward.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/share.min.css" />
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" />
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" />
  <link rel="stylesheet" href="https://systemime.github.io/css/pygment_highlights.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/highlight.min.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/toc.css" />
  <link rel="stylesheet" href="https://systemime.github.io/css/lightbox.css" />
  <link rel="stylesheet" href="https://systemime.github.io/live2d/css/live2d.css" />
  
  <link href="https://systemime.github.io/css/video-js.css" rel="stylesheet">


<meta name="baidu-site-verification" content="g8IYR9SNLF" />
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?cffe439e37449bb1c07ab26ab56484bb";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>

<link rel="stylesheet" href="https://systemime.github.io/css/prism.css" />









<script src="https://systemime.github.io/js/pace.min.js" data-no-instant></script>



<script src="https://systemime.github.io/js/instantclick.min.js" data-no-instant></script>
   <script data-no-instant>
   InstantClick.on('change', function(isInitialLoad) {
     if (isInitialLoad === false) {
       if (typeof MathJax !== 'undefined') 
         MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
       if (typeof prettyPrint !== 'undefined') 
         prettyPrint();
       if (typeof _hmt !== 'undefined')  
         _hmt.push(['_trackPageview', location.pathname + location.search]);
       if (typeof ga !== 'undefined')  
           ga('send', 'pageview', location.pathname + location.search);
     }
   });
   InstantClick.init();
</script>




<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.7.1/gist-embed.min.js"></script>


<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
  (adsbygoogle = window.adsbygoogle || []).push({
    google_ad_client: "ca-pub-3925981084585036",
    enable_page_level_ads: true
  });
</script>



<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.css" integrity="sha256-sCl5PUOGMLfFYctzDW3MtRib0ctyUvI9Qsmq2wXOeBY=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/default-skin/default-skin.min.css" integrity="sha256-BFeI1V+Vh1Rk37wswuOYn5lsTcaU96hGaI7OUVCLjPc=" crossorigin="anonymous" />



<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">

<div class="pswp__bg"></div>

<div class="pswp__scroll-wrap">
    
    <div class="pswp__container">
      <div class="pswp__item"></div>
      <div class="pswp__item"></div>
      <div class="pswp__item"></div>
    </div>
    
    <div class="pswp__ui pswp__ui--hidden">
    <div class="pswp__top-bar">
      
      <div class="pswp__counter"></div>
      <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
      <button class="pswp__button pswp__button--share" title="Share"></button>
      <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
      <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
      
      
      <div class="pswp__preloader">
        <div class="pswp__preloader__icn">
          <div class="pswp__preloader__cut">
            <div class="pswp__preloader__donut"></div>
          </div>
        </div>
      </div>
    </div>
    <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
      <div class="pswp__share-tooltip"></div>
    </div>
    <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
    </button>
    <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
    </button>
    <div class="pswp__caption">
      <div class="pswp__caption__center"></div>
    </div>
    </div>
    </div>
</div>

</head>

  <body>
    <nav class="navbar navbar-default navbar-fixed-top navbar-custom">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-navbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="https://systemime.github.io">听风的小站</a>
    </div>
    <div class="collapse navbar-collapse" id="main-navbar">
      <ul class="nav navbar-nav navbar-right">
        
          
            <li>
		    <a title="博客" href="https://systemime.github.io/blog/">博客</a>
              
              
            </li>
          
        
          
            <li>
		    <a title="片刻" href="https://systemime.github.io/moment/">片刻</a>
              
              
            </li>
          
        
          
            <li>
		    <a title="关于" href="https://systemime.github.io/about/">关于</a>
              
              
            </li>
          
        
          
            <li>
		    <a title="留言" href="https://systemime.github.io/message/">留言</a>
              
              
            </li>
          
        

        

        
        
      </ul>
    </div>

    <div class="avatar-container">
      <div class="avatar-img-border">
        
      </div>
    </div>

  </div>
</nav>






    
  
  
  




  

  <header class="header-section ">
    
    <div class="intro-header no-img">
      
      <div class="container">
        <div class="row">
          <div class="col-lg-12 col-md-12 col-md-offset-0">
            <div class="blog-heading">
                <h1 align="center">正则表达式操作实践</h1>
                
                
            </div>
          </div>
        </div>
      </div>
    </div>
  </header>


    
<div class="container" role="main" itemscope itemtype="http://schema.org/Article">
    <div class="row">
        <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
            
            
            
<div>
    <section id="datecount">
        <h4 id="date"> Mon Feb 25, 2019</h4>
    </section>
    <h5 id="wc">4000 Words|Read in about 8 Min|本文总阅读量<span id="busuanzi_value_page_pv"></span>次</h5>
    <h5 id="tags">Tags: 
        
        <a href="https://systemime.github.iotags/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/">正则表达式</a> &nbsp;
    </h5>
</div>

            
            <article role="main" class="blog-post" itemprop="articleBody" id="content">
                
<aside class="toc">
    <div id='anchors-navbar'>
        <i class='fa fa-anchor'></i>
        <nav id="TableOfContents">
  <ul>
    <li>
      <ul>
        <li><a href="#高效文本处理---1">高效文本处理 - 1</a></li>
        <li><a href="#高效文本处理---2">高效文本处理 - 2</a></li>
        <li><a href="#代码重构">代码重构</a></li>
        <li><a href="#数据格式验证">数据格式验证</a></li>
        <li><a href="#网络爬虫">网络爬虫</a></li>
      </ul>
    </li>
  </ul>
</nav>
    </div>
    
</aside>


                <h1 id="正则表达式操作实践">正则表达式操作实践</h1>
<p>来自 <a href="https://python123.io/">Python123</a>
有一些网站提供了常用的正则表达式和测试环境，例如</p>
<ul>
<li><a href="https://regexr.com/">regexr.com</a> 一个非常棒的在线环境，我经常使用</li>
<li><a href="http://regexlib.com/">regexlib.com</a> 一个非常棒的在线环境，我经常使用</li>
</ul>
<h3 id="高效文本处理---1">高效文本处理 - 1</h3>
<p>原始文本如下</p>
<pre><code> 张伟        17664999502  \n
 王伟       17187690316   \n
  王芳        14210007607   \n
 李伟         15878807133  \n
  王秀英    15575237523    \n
 李秀英  15695435545    \n
  李娜       18346347153   \n
  张秀英    17017338288   \n
   刘伟  15481361668  \n
  张敏        13528947724    \n
    李静         18522824481 \n
  张丽   14352788577     \n
  王静      18637851730    \n
 王丽        15862244782  \n
 李强   14363718204   \n
 张静  13418111578     \n
    李敏         15657258884  \n
    王敏         17574922377 \n
 王磊        14517362847 \n
  李军         18088271014  \n
 刘洋     17897166967     \n
</code></pre><ul>
<li>
<p><strong>提取所有 11 位数字电话号码</strong></p>
<pre><code>\d{11}
</code></pre><p>匹配结果</p>
<pre><code>17664999502
17187690316
14210007607
15878807133
15575237523
15695435545
18346347153
17017338288
15481361668
13528947724
18522824481
14352788577
18637851730
15862244782
14363718204
13418111578
15657258884
17574922377
14517362847
18088271014
17897166967
</code></pre></li>
<li>
<p><strong>提取所有 18 或 13 开头的电话号码</strong></p>
<pre><code>(18|13)\d{9}
</code></pre><p>匹配结果</p>
<pre><code>18346347153
13528947724
18522824481
18637851730
13418111578
18088271014
</code></pre></li>
<li>
<p><strong>提取所有“王”姓同学的名字</strong></p>
<pre><code>王\S*
</code></pre><p>匹配结果</p>
<pre><code>王伟
王芳
王秀英
王静
王丽
王敏
王磊
</code></pre></li>
<li>
<p><strong>提取所有“张”姓同学的电话号码</strong></p>
<pre><code>(张\S*) *(\d{11})    ||    $1 的电话是 $2
</code></pre><p>匹配结果</p>
<pre><code>张伟 的电话是 17664999502
张秀英 的电话是 17017338288
张敏 的电话是 13528947724
张丽 的电话是 14352788577
张静 的电话是 13418111578
</code></pre></li>
<li>
<p><strong>重新排版</strong></p>
<pre><code>(\S*) *(\d{11})    ||    $1 - $2
</code></pre><p><strong>匹配结果</strong></p>
<pre><code>张伟 - 17664999502
王伟 - 17187690316
王芳 - 14210007607
李伟 - 15878807133
王秀英 - 15575237523
李秀英 - 15695435545
李娜 - 18346347153
张秀英 - 17017338288
刘伟 - 15481361668
张敏 - 13528947724
李静 - 18522824481
张丽 - 14352788577
王静 - 18637851730
王丽 - 15862244782
李强 - 14363718204
张静 - 13418111578
李敏 - 15657258884
王敏 - 17574922377
王磊 - 14517362847
李军 - 18088271014
刘洋 - 17897166967
</code></pre></li>
</ul>
<h3 id="高效文本处理---2">高效文本处理 - 2</h3>
<p>原始文本如下</p>
<pre><code># 日期格式混乱的姓名簿

   张伟         1999年11月16日  王伟      1994.11.14    
 王芳   1991年12月15日       李伟     1993-3-16       王秀英   1993年11月7日   
  李秀英      1992-1-18  
   李娜  1996年9月6日     张秀英       1995-6-0       刘伟         1996年1月4日    张敏       1995.3.16    
  李静       1996-6-27        张丽 1997-6-28     
  王静  1997-5-4    
   王丽       1996-1-2 
  李强      1991-4-21  
 张静      1991-9-7       李敏   1997-6-5   
   王敏    1999年2月9日  
   王磊         1997-8-19      李军        1990年6月4日    
    刘洋      1999-6-25   
</code></pre><ul>
<li><strong>提取所有日期</strong>
<pre><code>\d{4}\S\d{1,2}\S\d{1,2}\S?
</code></pre><p>匹配结果</p>
<pre><code>1999年11月16日
1994.11.14
1991年12月15日
1993-3-16
1993年11月7日
1992-1-18
1996年9月6日
1995-6-0
1996年1月4日
1995.3.16
1996-6-27
1997-6-28
1997-5-4
1996-1-2
1991-4-21
1991-9-7
1997-6-5
1999年2月9日
1997-8-19
1990年6月4日
1999-6-25
</code></pre></li>
<li><strong>提取所有 1996 年以前出生的学生</strong>
<pre><code>(\S*) *199[0-5]\S\d{1,2}\S\d{1,2}\S?
</code></pre><p>匹配结果</p>
<pre><code>王伟      1994.11.14
王芳   1991年12月15日
李伟     1993-3-16
王秀英   1993年11月7日
李秀英      1992-1-18
张秀英       1995-6-0
张敏       1995.3.16
李强      1991-4-21
张静      1991-9-7
李军        1990年6月4日
</code></pre></li>
<li><strong>重新排版</strong>
<pre><code>(\S*) *(\d{4})\S(\d{1,2})\S(\d{1,2})\S?  ||  $1： $2 年 $3 月 $4 日
</code></pre><p>匹配结果</p>
<pre><code>张伟： 1999 年 11 月 16 日
王伟： 1994 年 11 月 14 日
王芳： 1991 年 12 月 15 日
李伟： 1993 年 3 月 16 日
王秀英： 1993 年 11 月 7 日
李秀英： 1992 年 1 月 18 日
李娜： 1996 年 9 月 6 日
张秀英： 1995 年 6 月 0 日
刘伟： 1996 年 1 月 4 日
张敏： 1995 年 3 月 16 日
李静： 1996 年 6 月 27 日
张丽： 1997 年 6 月 28 日
王静： 1997 年 5 月 4 日
王丽： 1996 年 1 月 2 日
李强： 1991 年 4 月 21 日
张静： 1991 年 9 月 7 日
李敏： 1997 年 6 月 5 日
王敏： 1999 年 2 月 9 日
王磊： 1997 年 8 月 19 日
李军： 1990 年 6 月 4 日
刘洋： 1999 年 6 月 25 日
</code></pre></li>
<li><strong>把所有 1996 年以前出生的学生出生年份改为 1996</strong>
<pre><code>(\S*) *(199[0-5])\S(\d{1,2})\S(\d{1,2})\S?    ||    $1： 1996 年 $3 月 $4 日
</code></pre><p>匹配结果</p>
<pre><code>王伟： 1996 年 11 月 14 日
王芳： 1996 年 12 月 15 日
李伟： 1996 年 3 月 16 日
王秀英： 1996 年 11 月 7 日
李秀英： 1996 年 1 月 18 日
张秀英： 1996 年 6 月 0 日
张敏： 1996 年 3 月 16 日
李强： 1996 年 4 月 21 日
张静： 1996 年 9 月 7 日
李军： 1996 年 6 月 4 日
</code></pre></li>
<li><strong>提取生日</strong>
<pre><code>(\S*) *(199[0-5])\S(\d{1,2})\S(\d{1,2})\S?    ||    $1的生日是$3月$4号
</code></pre><p>匹配结果</p>
<pre><code>张伟的生日是11月16号
王伟的生日是11月14号
王芳的生日是12月15号
李伟的生日是3月16号
王秀英的生日是11月7号
李秀英的生日是1月18号
李娜的生日是9月6号
张秀英的生日是6月0号
刘伟的生日是1月4号
张敏的生日是3月16号
李静的生日是6月27号
张丽的生日是6月28号
王静的生日是5月4号
王丽的生日是1月2号
李强的生日是4月21号
张静的生日是9月7号
李敏的生日是6月5号
王敏的生日是2月9号
王磊的生日是8月19号
李军的生日是6月4号
刘洋的生日是6月25号
</code></pre></li>
</ul>
<h3 id="代码重构">代码重构</h3>
<p>原始文本如下</p>
<div class="highlight"><pre class="chroma"><code class="language-python" data-lang="python"><span class="k">def</span> <span class="nf">fib</span><span class="p">():</span>
    <span class="k">return</span> <span class="p">((</span><span class="mi">1</span><span class="o">+</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">5</span><span class="p">))</span><span class="o">**</span><span class="n">n</span><span class="o">-</span><span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">5</span><span class="p">))</span><span class="o">**</span><span class="n">n</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mi">2</span><span class="o">**</span><span class="n">n</span><span class="o">*</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">5</span><span class="p">))</span>

<span class="k">def</span> <span class="nf">subfib</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">):</span>
    <span class="k">for</span> <span class="n">cur</span> <span class="ow">in</span> <span class="n">fib</span><span class="p">():</span>
        <span class="k">if</span> <span class="n">cur</span> <span class="o">&gt;</span> <span class="n">end</span><span class="p">:</span> <span class="k">return</span>
        <span class="k">if</span> <span class="n">cur</span> <span class="o">&gt;=</span> <span class="n">start</span><span class="p">:</span>
            <span class="k">print</span> <span class="n">cur</span>
            <span class="k">yield</span> <span class="n">cur</span>

<span class="k">def</span> <span class="nf">foo</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
   <span class="k">return</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span>

<span class="k">print</span> <span class="s1">&#39;fibonacci 10~100:&#39;</span>
<span class="k">print</span> <span class="n">subfib</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span>
</code></pre></div><ul>
<li><strong>调整缩进，将四空格缩进重构为八个空格</strong>
<pre><code>^(\s+)    ||    $1$1
</code></pre><p>处理结果如下</p>
<pre><code>def fib():
        return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))

def subfib(start, end):
        for cur in fib():
                if cur &gt; end: return
                if cur &gt;= start:
                        print cur
                        yield cur

def foo(a, b):
      return a + b

print 'fibonacci 10~100:'
print subfib(10, 100)
</code></pre></li>
<li><strong>重构 Python2 的 print 语法为 Python3 的 print() 函数</strong>
<pre><code>print *(.*)$    ||    print($1)
</code></pre><p>处理结果如下</p>
<pre><code>def fib():
    return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))

def subfib(start, end):
    for cur in fib():
        if cur &gt; end: return
        if cur &gt;= start:
            print(cur)
            yield cur

def foo(a, b):
   return a + b

print('fibonacci 10~100:')
print(subfib(10, 100))
</code></pre></li>
<li>**所有函数声明添加 func_ 前缀**
<pre><code>def *(.*)    ||    def func_$1
</code></pre><p>处理结果如下</p>
<pre><code>def func_fib():
    return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))

def func_subfib(start, end):
    for cur in fib():
        if cur &gt; end: return
        if cur &gt;= start:
            print cur
            yield cur

def func_foo(a, b):
   return a + b

print 'fibonacci 10~100:'
print subfib(10, 100)
</code></pre></li>
<li><strong>交换函数声明中的参数位置</strong>
<pre><code>def (.*?)\((\w+), *(\w+)\)    ||    def $1($3, $2)
</code></pre><p>处理结果如下</p>
<pre><code>def fib():
    return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))

def subfib(end, start):
    for cur in fib():
        if cur &gt; end: return
        if cur &gt;= start:
            print cur
            yield cur

def foo(b, a):
   return a + b

print 'fibonacci 10~100:'
print subfib(10, 100)
</code></pre></li>
<li><strong>为所有函数添加注释模板</strong>
<pre><code>def *(.*):    ||    def $1:   &quot;&quot;&quot;    函数描述:    参数:    返回值:  &quot;&quot;&quot;
</code></pre><p>处理结果如下</p>
<pre><code>def fib():
   &quot;&quot;&quot;
    函数描述:
    参数:
    返回值:
  &quot;&quot;&quot;
    return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))

def subfib(start, end):
   &quot;&quot;&quot;
    函数描述:
    参数:
    返回值:
  &quot;&quot;&quot;
    for cur in fib():
        if cur &gt; end: return
        if cur &gt;= start:
            print cur
            yield cur

def foo(a, b):
   &quot;&quot;&quot;
    函数描述:
    参数:
    返回值:
  &quot;&quot;&quot;
   return a + b

print 'fibonacci 10~100:'
print subfib(10, 100)
</code></pre></li>
</ul>
<h3 id="数据格式验证">数据格式验证</h3>
<p>数据格式验证是正则表达式的一个常用领域，网站通常使用正则表达式来判断用户提交的信息是否符合规范。
下面的正则表达式都相当复杂，幸运的是你不需要记忆这些常用的正则表达式，需要时通过任何搜索引擎都能够找到。</p>
<ul>
<li><strong>邮箱验证</strong>
原始文本
<pre><code>123@qq.com
asdf@gmail.com
surname@blah.com
name.name@123.com
1242135.com
@foo.com
a@a
name @bla.com
</code></pre><p>正则表达式</p>
<pre><code>^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$
</code></pre><p>处理结果</p>
<pre><code>123@qq.com
asdf@gmail.com
surname@blah.com
name.name@123.com
</code></pre></li>
<li><strong>密码强度验证（最少八个字符，至少一个大写字母，一个小写字母和一个数字）</strong>
原始文本
<pre><code>123456
wdfqe#wefDdf123
wjleif932
8Ij12340
password
11111111ABc
hello
qweasdzxc
</code></pre><p>正则表达式</p>
<pre><code>^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^\n]{8,}$
</code></pre><p>处理结果</p>
<pre><code>wdfqe#wefDdf123
8Ij12340
11111111ABc
</code></pre></li>
<li><strong>18 位身份证号验证</strong>
原始文本
<pre><code>23010519491231002X
33010517491231232X
67810519491331214X
22010519491232452X
123412195292349132
123412196712234932
a23rr23451235t123f
124123580913457102
</code></pre><p>正则表达式</p>
<pre><code>^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
</code></pre><p>处理结果</p>
<pre><code>23010519491231002X
123412196712234932
</code></pre></li>
<li><strong>IP 地址验证</strong>
原始文本
<pre><code>1.0.0.0
12.3.4.5
192.168.1.1
192.168.256.1
1.2.2.2
0.0.0.0
2.3.4
-1.2.3.4
</code></pre><p>正则表达式</p>
<pre><code>^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
</code></pre><p>处理结果</p>
<pre><code>1.0.0.0
12.3.4.5
192.168.1.1
1.2.2.2
0.0.0.0
</code></pre></li>
<li><strong>手机号验证</strong>
原始文本
<pre><code>12345678900
12354125235
15423423523
15123458654
8613890235892
017728384893
11111111111
</code></pre><p>正则表达式</p>
<pre><code>^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$
</code></pre><p>处理结果</p>
<pre><code>15123458654
8613890235892
017728384893
</code></pre></li>
</ul>
<h3 id="网络爬虫">网络爬虫</h3>
<p>网络爬虫提取数据也离不开正则表达式。</p>
<ul>
<li><strong>提取所有 HTML 标签</strong>
正则表达式
<pre><code>&lt;(&quot;[^&quot;]*&quot;|'[^']*'|[^'&quot;&gt;])*&gt;
</code></pre><p>原始文本</p>
<div class="highlight"><pre class="chroma"><code class="language-html" data-lang="html"><span class="p">&lt;</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;hotnews&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;imgview&#34;</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;imgView&#34;</span><span class="p">&gt;&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;https://xinwen.eastday.com/a/n181211075002407.html?qid=news.baidu.com&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span><span class="p">&gt;&lt;</span><span class="nt">img</span> <span class="na">src</span><span class="o">=</span><span class="s">&#34;https://imgsa.baidu.com/news/q%3D100/sign=cdae0fb78a94a4c20c23e32b3ef51bac/cefc1e178a82b90151b62d8b7e8da9773912ef6b.jpg&#34;</span><span class="p">&gt;&lt;/</span><span class="nt">a</span><span class="p">&gt;&lt;/</span><span class="nt">div</span><span class="p">&gt;&lt;</span><span class="nt">ul</span><span class="p">&gt;&lt;</span><span class="nt">li</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;hdline0&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;http://www.xinhuanet.com/politics/xxjxs/2018-12/11/c_1123834898.htm&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;a3&#34;</span><span class="p">&gt;</span>
习近平的改革之“喻” <span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">li</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;hdline1&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;http://news.cri.cn/20181211/313376c7-77cc-abff-3a81-bd855c0a8577.html&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span><span class="p">&gt;</span>
《必由之路》宣传片<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">i</span> <span class="na">style</span><span class="o">=</span><span class="s">&#34;font-size: 12px&#34;</span><span class="p">&gt;</span><span class="ni">&amp;nbsp;</span><span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;http://politics.gmw.cn/2018-12/11/content_32146726.htm&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span><span class="p">&gt;</span>
主题歌《梦想阳光》发布 <span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">li</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;hdline2&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">img</span> <span class="na">src</span><span class="o">=</span><span class="s">&#34;https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg&#34;</span><span class="p">&gt;&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;http://politics.people.com.cn/n1/2018/1211/c1001-30458946.html&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;a3&#34;</span><span class="p">&gt;</span>
【央视快评】坚持中国特色人权发展道路<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">li</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;hdline3&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;http://news.cri.cn/20181210/384ab948-e36b-b455-9d97-8eb05172c179.html&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span><span class="p">&gt;</span>同舟共济<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">i</span> <span class="na">style</span><span class="o">=</span><span class="s">&#34;font-size: 12px&#34;</span><span class="p">&gt;</span><span class="ni">&amp;nbsp;</span><span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;http://news.cctv.com/2018/12/10/ARTI9v2GwcDNkh8obJh2vnUy181210.shtml&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span><span class="p">&gt;</span>
《改革开放 关键一招》第一集<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">li</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;hdline4&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;http://news.cctv.com/2018/12/10/ARTISzd4ekNLNB88EFFtMgB7181210.shtml&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;a3&#34;</span><span class="p">&gt;</span>
【数说改革开放40年】40年减贫7.4亿人<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">li</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;hdline5&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;http://news.ifeng.com/a/20181211/60188943_0.shtml?_zbs_baidu_news&#34;</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span><span class="p">&gt;</span>王岐山出席的这个活动，有什么来头？<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
</code></pre></div><p>处理结果</p>
<pre><code>&lt;div class=&quot;hotnews&quot;&gt;
&lt;div class=&quot;imgview&quot; id=&quot;imgView&quot;&gt;
&lt;a href=&quot;https://xinwen.eastday.com/a/n181211075002407.html?qid=news.baidu.com&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=cdae0fb78a94a4c20c23e32b3ef51bac/cefc1e178a82b90151b62d8b7e8da9773912ef6b.jpg&quot;&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;hdline0&quot;&gt;
&lt;a href=&quot;http://www.xinhuanet.com/politics/xxjxs/2018-12/11/c_1123834898.htm&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline1&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181211/313376c7-77cc-abff-3a81-bd855c0a8577.html&quot; target=&quot;_blank&quot;&gt;
&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;
&lt;/i&gt;
&lt;a href=&quot;http://politics.gmw.cn/2018-12/11/content_32146726.htm&quot; target=&quot;_blank&quot;&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline2&quot;&gt;
&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg&quot;&gt;
&lt;a href=&quot;http://politics.people.com.cn/n1/2018/1211/c1001-30458946.html&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline3&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181210/384ab948-e36b-b455-9d97-8eb05172c179.html&quot; target=&quot;_blank&quot;&gt;
&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;
&lt;/i&gt;
&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTI9v2GwcDNkh8obJh2vnUy181210.shtml&quot; target=&quot;_blank&quot;&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline4&quot;&gt;
&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTISzd4ekNLNB88EFFtMgB7181210.shtml&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline5&quot;&gt;
&lt;a href=&quot;http://news.ifeng.com/a/20181211/60188943_0.shtml?_zbs_baidu_news&quot; target=&quot;_blank&quot;&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></li>
<li><strong>清洗所有 HTML 标签</strong>
正则表达式
<pre><code>&lt;(&quot;[^&quot;]*&quot;|'[^']*'|[^'&quot;&gt;])*&gt;    ||    ' '
</code></pre><p>原始文本</p>
<pre><code>&lt;div class=&quot;hotnews&quot;&gt;
&lt;div class=&quot;imgview&quot; id=&quot;imgView&quot;&gt;&lt;a href=&quot;https://xinwen.eastday.com/a/n181211075002407.html?qid=news.baidu.com&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=cdae0fb78a94a4c20c23e32b3ef51bac/cefc1e178a82b90151b62d8b7e8da9773912ef6b.jpg&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li class=&quot;hdline0&quot;&gt;
&lt;a href=&quot;http://www.xinhuanet.com/politics/xxjxs/2018-12/11/c_1123834898.htm&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
习近平的改革之“喻” &lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline1&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181211/313376c7-77cc-abff-3a81-bd855c0a8577.html&quot; target=&quot;_blank&quot;&gt;
《必由之路》宣传片&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;&amp;nbsp;&lt;/i&gt;&lt;a href=&quot;http://politics.gmw.cn/2018-12/11/content_32146726.htm&quot; target=&quot;_blank&quot;&gt;
主题歌《梦想阳光》发布 &lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline2&quot;&gt;
&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg&quot;&gt;&lt;a href=&quot;http://politics.people.com.cn/n1/2018/1211/c1001-30458946.html&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
【央视快评】坚持中国特色人权发展道路&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline3&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181210/384ab948-e36b-b455-9d97-8eb05172c179.html&quot; target=&quot;_blank&quot;&gt;同舟共济&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;&amp;nbsp;&lt;/i&gt;&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTI9v2GwcDNkh8obJh2vnUy181210.shtml&quot; target=&quot;_blank&quot;&gt;
《改革开放 关键一招》第一集&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline4&quot;&gt;
&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTISzd4ekNLNB88EFFtMgB7181210.shtml&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
【数说改革开放40年】40年减贫7.4亿人&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline5&quot;&gt;
&lt;a href=&quot;http://news.ifeng.com/a/20181211/60188943_0.shtml?_zbs_baidu_news&quot; target=&quot;_blank&quot;&gt;王岐山出席的这个活动，有什么来头？&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre><p>处理结果</p>
<pre><code>  
习近平的改革之“喻”   
  
《必由之路》宣传片 
 &amp;nbsp;  
主题歌《梦想阳光》发布  
  
【央视快评】坚持中国特色人权发展道路  
   
 同舟共济 
 &amp;nbsp;  
《改革开放 关键一招》第一集 
  
【数说改革开放40年】40年减贫7.4亿人  
 王岐山出席的这个活动，有什么来头？ 
</code></pre></li>
<li><strong>提取所有 URL</strong>
正则表达式
<pre><code>(https?|ftp|file)(:/)?/[-A-Za-z0-9+&amp;@#/%?=~_|!:,.;]+[-A-Za-z0-9+&amp;@#/%=~_|]
</code></pre><p>原始文本</p>
<pre><code>&lt;div class=&quot;hotnews&quot;&gt;
&lt;div class=&quot;imgview&quot; id=&quot;imgView&quot;&gt;&lt;a href=&quot;https://xinwen.eastday.com/a/n181211075002407.html?qid=news.baidu.com&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=cdae0fb78a94a4c20c23e32b3ef51bac/cefc1e178a82b90151b62d8b7e8da9773912ef6b.jpg&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li class=&quot;hdline0&quot;&gt;
&lt;a href=&quot;http://www.xinhuanet.com/politics/xxjxs/2018-12/11/c_1123834898.htm&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
习近平的改革之“喻” &lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline1&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181211/313376c7-77cc-abff-3a81-bd855c0a8577.html&quot; target=&quot;_blank&quot;&gt;
《必由之路》宣传片&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;&amp;nbsp;&lt;/i&gt;&lt;a href=&quot;http://politics.gmw.cn/2018-12/11/content_32146726.htm&quot; target=&quot;_blank&quot;&gt;
主题歌《梦想阳光》发布 &lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline2&quot;&gt;
&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg&quot;&gt;&lt;a href=&quot;http://politics.people.com.cn/n1/2018/1211/c1001-30458946.html&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
【央视快评】坚持中国特色人权发展道路&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline3&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181210/384ab948-e36b-b455-9d97-8eb05172c179.html&quot; target=&quot;_blank&quot;&gt;同舟共济&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;&amp;nbsp;&lt;/i&gt;&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTI9v2GwcDNkh8obJh2vnUy181210.shtml&quot; target=&quot;_blank&quot;&gt;
《改革开放 关键一招》第一集&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline4&quot;&gt;
&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTISzd4ekNLNB88EFFtMgB7181210.shtml&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
【数说改革开放40年】40年减贫7.4亿人&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline5&quot;&gt;
&lt;a href=&quot;http://news.ifeng.com/a/20181211/60188943_0.shtml?_zbs_baidu_news&quot; target=&quot;_blank&quot;&gt;王岐山出席的这个活动，有什么来头？&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre><p>处理结果</p>
<pre><code>https://xinwen.eastday.com/a/n181211075002407.html?qid=news.baidu.com
https://imgsa.baidu.com/news/q%3D100/sign=cdae0fb78a94a4c20c23e32b3ef51bac/cefc1e178a82b90151b62d8b7e8da9773912ef6b.jpg
http://www.xinhuanet.com/politics/xxjxs/2018-12/11/c_1123834898.htm
http://news.cri.cn/20181211/313376c7-77cc-abff-3a81-bd855c0a8577.html
http://politics.gmw.cn/2018-12/11/content_32146726.htm
https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg
http://politics.people.com.cn/n1/2018/1211/c1001-30458946.html
http://news.cri.cn/20181210/384ab948-e36b-b455-9d97-8eb05172c179.html
http://news.cctv.com/2018/12/10/ARTI9v2GwcDNkh8obJh2vnUy181210.shtml
http://news.cctv.com/2018/12/10/ARTISzd4ekNLNB88EFFtMgB7181210.shtml
http://news.ifeng.com/a/20181211/60188943_0.shtml?_zbs_baidu_news
</code></pre></li>
<li><strong>提取所有 JPG 图片的 URL</strong>
正则表达式
<pre><code>(https?|ftp|file)(:/)?/[-A-Za-z0-9+&amp;@#/%?=~_|!:,.;]+[-A-Za-z0-9+&amp;@#/%=~_|].jpg
</code></pre><p>原始文本</p>
<pre><code>&lt;div class=&quot;hotnews&quot;&gt;
&lt;div class=&quot;imgview&quot; id=&quot;imgView&quot;&gt;&lt;a href=&quot;https://xinwen.eastday.com/a/n181211075002407.html?qid=news.baidu.com&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=cdae0fb78a94a4c20c23e32b3ef51bac/cefc1e178a82b90151b62d8b7e8da9773912ef6b.jpg&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li class=&quot;hdline0&quot;&gt;
&lt;a href=&quot;http://www.xinhuanet.com/politics/xxjxs/2018-12/11/c_1123834898.htm&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
习近平的改革之“喻” &lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline1&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181211/313376c7-77cc-abff-3a81-bd855c0a8577.html&quot; target=&quot;_blank&quot;&gt;
《必由之路》宣传片&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;&amp;nbsp;&lt;/i&gt;&lt;a href=&quot;http://politics.gmw.cn/2018-12/11/content_32146726.htm&quot; target=&quot;_blank&quot;&gt;
主题歌《梦想阳光》发布 &lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline2&quot;&gt;
&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg&quot;&gt;&lt;a href=&quot;http://politics.people.com.cn/n1/2018/1211/c1001-30458946.html&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
【央视快评】坚持中国特色人权发展道路&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline3&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181210/384ab948-e36b-b455-9d97-8eb05172c179.html&quot; target=&quot;_blank&quot;&gt;同舟共济&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;&amp;nbsp;&lt;/i&gt;&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTI9v2GwcDNkh8obJh2vnUy181210.shtml&quot; target=&quot;_blank&quot;&gt;
《改革开放 关键一招》第一集&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline4&quot;&gt;
&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTISzd4ekNLNB88EFFtMgB7181210.shtml&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
【数说改革开放40年】40年减贫7.4亿人&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline5&quot;&gt;
&lt;a href=&quot;http://news.ifeng.com/a/20181211/60188943_0.shtml?_zbs_baidu_news&quot; target=&quot;_blank&quot;&gt;王岐山出席的这个活动，有什么来头？&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre><p>处理结果</p>
<pre><code>https://imgsa.baidu.com/news/q%3D100/sign=cdae0fb78a94a4c20c23e32b3ef51bac/cefc1e178a82b90151b62d8b7e8da9773912ef6b.jpg
</code></pre></li>
</ul>
<p><a href="https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg">https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg</a>
```</p>
<ul>
<li><strong>提取所有中文和中文标点</strong>
正则表达式
<pre><code>[\u4e00-\u9fa5\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]+
</code></pre><p>原始文本</p>
<pre><code>&lt;div class=&quot;hotnews&quot;&gt;
&lt;div class=&quot;imgview&quot; id=&quot;imgView&quot;&gt;&lt;a href=&quot;https://xinwen.eastday.com/a/n181211075002407.html?qid=news.baidu.com&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=cdae0fb78a94a4c20c23e32b3ef51bac/cefc1e178a82b90151b62d8b7e8da9773912ef6b.jpg&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li class=&quot;hdline0&quot;&gt;
&lt;a href=&quot;http://www.xinhuanet.com/politics/xxjxs/2018-12/11/c_1123834898.htm&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
习近平的改革之“喻” &lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline1&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181211/313376c7-77cc-abff-3a81-bd855c0a8577.html&quot; target=&quot;_blank&quot;&gt;
《必由之路》宣传片&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;&amp;nbsp;&lt;/i&gt;&lt;a href=&quot;http://politics.gmw.cn/2018-12/11/content_32146726.htm&quot; target=&quot;_blank&quot;&gt;
主题歌《梦想阳光》发布 &lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline2&quot;&gt;
&lt;img src=&quot;https://imgsa.baidu.com/news/q%3D100/sign=ab45ee53bbfd5266a12b38149b199799/f9198618367adab46063f9fb86d4b31c8601e4d3.jpg&quot;&gt;&lt;a href=&quot;http://politics.people.com.cn/n1/2018/1211/c1001-30458946.html&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
【央视快评】坚持中国特色人权发展道路&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline3&quot;&gt;
&lt;a href=&quot;http://news.cri.cn/20181210/384ab948-e36b-b455-9d97-8eb05172c179.html&quot; target=&quot;_blank&quot;&gt;同舟共济&lt;/a&gt;
&lt;i style=&quot;font-size: 12px&quot;&gt;&amp;nbsp;&lt;/i&gt;&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTI9v2GwcDNkh8obJh2vnUy181210.shtml&quot; target=&quot;_blank&quot;&gt;
《改革开放 关键一招》第一集&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;hdline4&quot;&gt;
&lt;a href=&quot;http://news.cctv.com/2018/12/10/ARTISzd4ekNLNB88EFFtMgB7181210.shtml&quot; target=&quot;_blank&quot; class=&quot;a3&quot;&gt;
【数说改革开放40年】40年减贫7.4亿人&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;hdline5&quot;&gt;
&lt;a href=&quot;http://news.ifeng.com/a/20181211/60188943_0.shtml?_zbs_baidu_news&quot; target=&quot;_blank&quot;&gt;王岐山出席的这个活动，有什么来头？&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre><p>处理结果</p>
<pre><code>习近平的改革之“喻”
《必由之路》宣传片
主题歌《梦想阳光》发布
央视快评
坚持中国特色人权发展道路
同舟共济
《改革开放
关键一招》第一集
数说改革开放
年
年减贫
亿人
王岐山出席的这个活动，有什么来头？
</code></pre></li>
</ul>

                <br />
                <div style="text-align:center;color: #ccc;font-size:16px;font-family: cursive;">-------他日江湖相逢 <i class="fa fa-umbrella"></i> 再当杯酒言欢-------</div>
                <script src="https://systemime.github.io/js/particle.js"></script>
                
                
                <div class="social-share" data-initialized="true" data-wechat-qrcode-title="不扫别后悔">
    <center>
    <font style="font-size:18px;color:darkcyan;">分享到：</font>
    <a href="#" class="social-share-icon icon-weibo"></a>
    <a href="#" class="social-share-icon icon-wechat"></a>
    <a href="#" class="social-share-icon icon-twitter"></a>
    <a href="#" class="social-share-icon icon-linkedin"></a>
    <a href="#" class="social-share-icon icon-facebook"></a>
    <a href="#" class="social-share-icon icon-qq"></a>
    </center>
</div>


<script src="https://hugo-picture.oss-cn-beijing.aliyuncs.com/social-share.min.js"></script>

                
            </article>

            <ul class="pager blog-pager">
                
                <li class="previous">
                    <a href="https://systemime.github.io/blog/2019-02/docker%E6%97%A5%E5%BF%97%E5%A4%AA%E5%A4%9A%E5%AF%BC%E8%87%B4%E7%A3%81%E7%9B%98%E5%8D%A0%E6%BB%A1/" data-toggle="tooltip" data-placement="top" title="Docker日志太多导致磁盘占满">&larr; Previous Post</a>
                </li>
                 
                <li class="next">
                    <a href="https://systemime.github.io/blog/2019-02/%E5%88%9B%E5%BB%BA%E6%9C%80%E5%B0%8F%E7%9A%84go-docker%E9%95%9C%E5%83%8F/" data-toggle="tooltip" data-placement="top" title="创建最小的Go Docker镜像">Next Post &rarr;</a>
                </li>
                
            </ul>
            
            <div>
                 
                <h2>相关文章</h2>
                <ul>
                    
                    <li><a href="https://systemime.github.io/blog/2019-02/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%AF%A6%E8%A7%A3/">正则表达式详解</a></li>
                    
                </ul>
                
            </div>
            
            
            
              
            
            </div>
        </div>
        <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
            
            
        </div>
    </div>
    </section>
</div>

    <div class="rocket"><img src="https://systemime.github.io/img/rocket_up.png" alt="" width="100" height="100"></div>
<script>
    $(function () {
      $(window).scroll(function () {
        
        if ($(window).scrollTop() >= 1000) {
          $('.rocket').stop().fadeIn(1000);
        }else {
          $('.rocket').stop().fadeOut(1000);
        }
      })
      
      $('.rocket').click(function () {
        $('html,body').stop().animate({scrollTop:0},400);
       
      })
    })

</script>

    
    <div id="landlord">
        <div class="message" style="opacity:0"></div>
        <canvas id="live2d" width="280" height="250" class="live2d"></canvas>
        <div class="hide-button">隐藏</div>
    </div>
    
    <footer id="copyright">
  <div class="container">
    <div class="row">
      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
        <ul class="list-inline text-center footer-links">
          
          
        </ul>
        <p class="credits copyright text-muted">
        &copy;2017-2018
          
          &nbsp;&bull;&nbsp;
          September 20,2019
          updated
          
            &nbsp;&bull;&nbsp;
            <a href="https://systemime.github.io">Home</a>
          
        </p>

        <p class="credits theme-by text-muted">
        <a href="https://servicemesher.github.io" target="_blank">ServiceMesher</a>&nbsp;&bull;&nbsp;<a href="https://github.com/yangchuansheng/k8s-knowledge" target="_blank">Kubernetes 知识图谱</a>
        <br />
        <span id="busuanzi_container_site_pv">
            本站已被访问 <span id="busuanzi_value_site_pv"></span> 次啦
        </span>
        <span id="busuanzi_container_site_uv">
            &ensp;|&ensp;&thinsp;您是第 <span id="busuanzi_value_site_uv"></span> 位到访的小伙伴喔
        </span>
        </p>
        
        <p class="credits theme-by text-muted">
          <a href="http://gohugo.io">Hugo v0.67.0</a> powered &nbsp;&bull;&nbsp; Theme by <a href="http://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a> adapted to <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a>
          
          <center><section class="credits theme-by text-muted">
    <span class="footer__copyright">
    <div>
    <span id="span_dt_dt"> </span>
    <script language="javascript">
      function show_date_time(){
        window.setTimeout("show_date_time()", 1000);
        BirthDay=new Date("7/8/2017 10:56:12");
        today=new Date();
        timeold=(today.getTime()-BirthDay.getTime());
        sectimeold=timeold/1000
        secondsold=Math.floor(sectimeold);
        msPerDay=24*60*60*1000
        e_daysold=timeold/msPerDay
        daysold=Math.floor(e_daysold);
        e_hrsold=(e_daysold-daysold)*24;
        hrsold=Math.floor(e_hrsold);
        e_minsold=(e_hrsold-hrsold)*60;
        minsold=Math.floor((e_hrsold-hrsold)*60);
        seconds=Math.floor((e_minsold-minsold)*60);
        span_dt_dt.innerHTML="本博客已经开心运行 "+daysold+" 天 "+hrsold+" 小时 "+minsold+" 分 "+seconds+" 秒";
      }
      show_date_time();
    </script>
    </div>
</script>
</section>
</center>
        </p>
      </div>
    </div>
  </div>
</footer>


<script src="https://res.cloudinary.com/jimmysong/raw/upload/rootsongjc-hugo/bootstrap.min.js"></script>
<script src="https://res.cloudinary.com/jimmysong/raw/upload/rootsongjc-hugo/photoswipe-ui-default.min.js"></script>
<script src="https://res.cloudinary.com/jimmysong/raw/upload/rootsongjc-hugo/photoswipe.min.js"></script>
<script src="https://res.cloudinary.com/jimmysong/raw/upload/rootsongjc-hugo/auto-render.min.js"></script>
<script src="https://systemime.github.io/js/main.js"></script>
<script src="https://systemime.github.io/js/clipboard.min.js"></script>
<script src="https://systemime.github.io/js/prism.js?t=123"></script>
<script src="https://systemime.github.io/js/highlight.min.js"></script>
<script src="https://res.cloudinary.com/jimmysong/raw/upload/rootsongjc-hugo/katex.min.js"></script>
<script src="https://systemime.github.io/js/reward.js"></script>
<script src="https://systemime.github.io/js/canvas_ribbon.js"></script>
<script> renderMathInElement(document.body); </script>

<script src="https://systemime.github.io/js/baguetteBox.js"></script>
<script> baguetteBox.run('.gallery');</script>






<script async defer src="https://buttons.github.io/buttons.js"></script>


<script src="https://polyfill.io/v2/polyfill.min.js?features=IntersectionObserver"></script>
<script type="text/javascript" src="https://systemime.github.io/js/quicklink.umd.js"></script>
<script>
window.addEventListener('load', () =>{
   quicklink();
});
</script>



<script type="text/javascript">
 
var a_idx = 0;
jQuery(document).ready(function($) {
    $("body").click(function(e) {
        var a = new Array("Docker", "Kubernetes", "Prometheus", "Envoy", "Istio", "Service Mesh", "Cloud Native");
        var $i = $("<span />").text(a[a_idx]);
        a_idx = (a_idx + 1) % a.length;
        var x = e.pageX,
        y = e.pageY;
        function randomColor() {
          var flakeColor = new Array("#FFDA65", "#00BFFF", "#BA55D3", "#FFA07A", "#87CEEB", "#FFB6C1");
          var snowColor = flakeColor[Math.floor(flakeColor.length * Math.random())];
          return snowColor;
        }
        $i.css({
            "z-index": 999999999999999999999999999999999999999999999999999999999999999999999,
            "top": y - 20,
            "left": x,
            "position": "absolute",
            "font-weight": "bold",
            "color": randomColor()
        });
        $("body").append($i);
        $i.animate({
            "top": y - 180,
            "opacity": 0
        },
        1500,
        function() {
            $i.remove();
        });
    });
});
</script>


<script type="text/javascript" src="https://systemime.github.io/js/lightbox.js"></script>











<script src="https://cdn.plyr.io/3.4.7/plyr.js"></script>
<script>const player = new Plyr('#player');</script>


<script async defer src="https://buttons.github.io/buttons.js"></script>


  </body>
</html>

